package com.powerbank.common.dto;

import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * 设备DTO
 */
@Data
public class DeviceDTO {
    
    /**
     * 获取设备状态字符串表示
     */
    public String getStatus() {
        if (deviceStatus == null) {
            return "UNKNOWN";
        }
        switch (deviceStatus) {
            case 0: return "DISABLED";  // 停用
            case 1: return "AVAILABLE"; // 正常/可用
            case 2: return "FAULT";     // 故障
            case 3: return "MAINTENANCE"; // 维护中
            default: return "UNKNOWN";
        }
    }
    
    /**
     * 获取小时费率（默认值）
     */
    public BigDecimal getHourlyRate() {
        return new BigDecimal("2.00"); // 默认每小时2元
    }
    
    /**
     * 获取押金金额（默认值）
     */
    public BigDecimal getDepositAmount() {
        return new BigDecimal("99.00"); // 默认押金99元
    }

    /**
     * 主键ID
     */
    private Long id;

    /**
     * 设备编码
     */
    private String deviceCode;

    /**
     * 设备名称
     */
    private String deviceName;

    /**
     * 点位ID
     */
    private Long locationId;

    /**
     * 点位名称
     */
    private String locationName;

    /**
     * 省份
     */
    private String province;

    /**
     * 城市
     */
    private String city;

    /**
     * 区县
     */
    private String district;

    /**
     * 详细地址
     */
    private String address;

    /**
     * 经度
     */
    private BigDecimal longitude;

    /**
     * 纬度
     */
    private BigDecimal latitude;

    /**
     * 设备型号
     */
    private String deviceModel;

    /**
     * 生产厂商
     */
    private String manufacturer;

    /**
     * 总插槽数
     */
    private Integer totalSlots;

    /**
     * 可用插槽数
     */
    private Integer availableSlots;

    /**
     * 已占用插槽数
     */
    private Integer occupiedSlots;

    /**
     * 维护中插槽数
     */
    private Integer maintenanceSlots;

    /**
     * 网络类型：WIFI,4G,5G
     */
    private String networkType;

    /**
     * 固件版本
     */
    private String firmwareVersion;

    /**
     * 最后心跳时间
     */
    private LocalDateTime lastHeartbeat;

    /**
     * 在线状态：0-离线，1-在线
     */
    private Integer onlineStatus;

    /**
     * 设备状态：0-停用，1-正常，2-故障，3-维护中
     */
    private Integer deviceStatus;

    /**
     * 安装日期
     */
    private String installDate;

    /**
     * 保修到期日期
     */
    private String warrantyDate;

    /**
     * 设备二维码
     */
    private String qrCode;

    /**
     * 创建时间
     */
    private LocalDateTime createdTime;

    /**
     * 更新时间
     */
    private LocalDateTime updatedTime;
}